Hive查询问题(卡住) |
您所在的位置:网站首页 › hive sql查询语句 › Hive查询问题(卡住) |
一、现象 几乎全部SQL语句都不能查,卡死在那里,过很久之后可能会报 FAILED: Error in acquiring locks: Error communicating with the metastore 但是查看后台hive的日志,没有任何异常 SQL语句比如: select 1; show tables;二、定位原因 1、重启hiveserver2,MetaStore等服务都没有效果 2、考虑是hive元数据的问题 查看hive元数据表的使用情况 show OPEN TABLES where In_use > 0; show full processlist;发现多个以下语句: select nl_next from NEXT_LOCK_ID for update猜测这些表被锁死,导致。 查看数据: select nl_next from NEXT_LOCK_ID发现有2条一样的数据 问题可能就在这里;想办法删除一条; 三、解决路径 NEXT_LOCK_ID 始终有锁,无法删除数据。 1、停止hiveserver2,MetaStore 服务;发现还有锁 2、查看hive应用进程 ps -ef|grep hive,全部杀掉,锁释放 3、然后删除NEXT_LOCK_ID一条记录 4、重启hiveserver2,MetaStore 5、查询hive 恢复正常 四、总结 原因可能是多个进程同时操作,导致hive事务上的bug,插进了2条一样的数据,导致元数据库被锁 以下几个hive元数据表跟hive的事务有关: NEXT_LOCK_ID next_compaction_queue_id next_txn_id 以上三个表出问题就有可能会报以下错误: error in acquiring locks: error communicating with the metastore. hive 卡死的原因很多,这个是其中之一,基本都hive metastore会有一些关系,大家可以按这个方向去定位原因,就能更快速寻找到问题的根源。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |